<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
	<title>发现和集群形成设置 | ElasticSearch 7.7 权威指南中文版</title>
	<meta name="keywords" content="ElasticSearch 权威指南中文版, elasticsearch 7, es7, 实时数据分析，实时数据检索" />
    <meta name="description" content="ElasticSearch 权威指南中文版, elasticsearch 7, es7, 实时数据分析，实时数据检索" />
    <!-- Give IE8 a fighting chance -->
    <!--[if lt IE 9]>
    <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
    <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
    <![endif]-->
	<link rel="stylesheet" type="text/css" href="../static/styles.css" />
	<script>
	var _link = 'modules-discovery-settings.html';
    </script>
</head>
<body>
<div class="main-container">
    <section id="content">
        <div class="content-wrapper">
            <section id="guide" lang="zh_cn">
                <div class="container">
                    <div class="row">
                        <div class="col-xs-12 col-sm-8 col-md-8 guide-section">
                            <div style="color:gray; word-break: break-all; font-size:12px;">原英文版地址: <a href="https://www.elastic.co/guide/en/elasticsearch/reference/7.7/modules-discovery-settings.html" rel="nofollow" target="_blank">https://www.elastic.co/guide/en/elasticsearch/reference/7.7/modules-discovery-settings.html</a>, 原文档版权归 www.elastic.co 所有<br/>本地英文版地址: <a href="../en/modules-discovery-settings.html" rel="nofollow" target="_blank">../en/modules-discovery-settings.html</a></div>
                        <!-- start body -->
                  <div class="page_header">
<strong>重要</strong>: 此版本不会发布额外的bug修复或文档更新。最新信息请参考 <a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html" rel="nofollow">当前版本文档</a>。
</div>
<div id="content">
<div class="breadcrumbs">
<span class="breadcrumb-link"><a href="index.html">Elasticsearch 权威指南 [7.7]</a></span>
»
<span class="breadcrumb-link"><a href="setup.html">安装和设置</a></span>
»
<span class="breadcrumb-link"><a href="settings.html">配置 Elasticsearch</a></span>
»
<span class="breadcrumb-node">发现和集群形成设置</span>
</div>
<div class="navheader">
<span class="prev">
<a href="ccr-settings.html">« 跨集群复制设置</a>
</span>
<span class="next">
<a href="modules-fielddata.html">字段数据缓存设置 »</a>
</span>
</div>
<div class="section">
<div class="titlepage"><div><div>
<h2 class="title">
<a id="modules-discovery-settings"></a>发现(discovery) 和集群形成设置
</h2>
</div></div></div>
<p><a class="xref" href="modules-discovery.html" title="Discovery and cluster formation">发现和集群形成</a> 受以下几个设置的影响：</p>
<div class="variablelist">
<dl class="variablelist">
<dt>
<span class="term">
<code class="literal">discovery.seed_hosts</code>
</span>
</dt>
<dd>
<p>
提供集群中符合主节点条件的节点的地址列表。
也可以是包含以逗号分隔的地址的单个字符串。
单个地址的格式是 <code class="literal">host:port</code> 或者 <code class="literal">host</code>。
<code class="literal">host</code>可以是由 DNS 解析的主机名、IPv4 地址或 IPv6 地址。
IPv6 地址必须用中括号[]括起来。
如果一个主机名通过 DNS 解析成多个地址，Elasticsearch 会使用所有的地址。
DNS查找依赖于 <a class="xref" href="networkaddress-cache-ttl.html" title="DNS cache settings">JVM DNS 缓存</a>。
如果未指定 <code class="literal">port</code>，则通过顺序检查以下设置来确定端口：
</p>
<div class="olist orderedlist">
<ol class="orderedlist">
<li class="listitem">
<code class="literal">transport.profiles.default.port</code>
</li>
<li class="listitem">
<code class="literal">transport.port</code>
</li>
</ol>
</div>
<p>
如果两个都没有设置，则默认端口为 <code class="literal">9300</code>。
<code class="literal">discovery.seed_hosts</code> 的默认值为 <code class="literal">["127.0.0.1", "[::1]"]</code>。
(参考 <a class="xref" href="discovery-settings.html#unicast.hosts" title="discovery.seed_hosts"><code class="literal">discovery.seed_hosts</code></a>)。
</p>
<p>
该设置以前叫 <code class="literal">discovery.zen.ping.unicast.hosts</code>。这个旧名称已被弃用，但为了保持向后兼容性，仍可以继续使用。在未来版本中将移除对旧名称的支持。
</p>
</dd>
<dt>
<span class="term">
<code class="literal">discovery.seed_providers</code>
</span>
</dt>
<dd>
指定使用哪种类型的 <a class="xref" href="modules-discovery-hosts-providers.html#built-in-hosts-providers" title="Seed hosts providers">种子主机提供程序(seed hosts provider)</a> 来获取用于启动 发现(discovery) 过程的种子节点的地址。

默认情况下，由 <a class="xref" href="modules-discovery-hosts-providers.html#settings-based-hosts-provider" title="Settings-based seed hosts provider">基于设置的种子主机提供程序(settings-based seed hosts provider)</a> 从 <code class="literal">discovery.seed_hosts</code> 设置中获取种子节点地址。

这个设置以前叫 <code class="literal">discovery.zen.hosts_provider</code>。这个旧名称已被弃用，但为了保持向后兼容性，仍可以继续使用。在未来版本中将移除对旧名称的支持。
</dd>
<dt>
<span class="term">
<code class="literal">discovery.type</code>
</span>
</dt>
<dd>
指定 Elasticsearch 是否应该组建成一个多节点的集群。
默认情况下，Elasticsearch 会在组成集群时发现其他节点，并允许其他节点稍后加入集群。

如果 <code class="literal">discovery.type</code> 设置为 <code class="literal">single-node</code>，Elasticsearch 将组建一个单节点集群，并取消<code class="literal">cluster.publish.timeout</code> 和 <code class="literal">cluster.join.timeout</code> 设置的超时时间。

有关何时可以使用此设置的更多信息，请参考 <a class="xref" href="bootstrap-checks.html#single-node-discovery" title="Single-node discovery">Single-node discovery</a>。
</dd>
<dt>
<span class="term">
<code class="literal">cluster.initial_master_nodes</code>
</span>
</dt>
<dd>
在全新的集群中设置初始的符合主节点条件的节点集。
默认情况下，该列表为空，这意味着该节点希望加入一个已经启动的集群。
参考 <a class="xref" href="discovery-settings.html#initial_master_nodes" title="cluster.initial_master_nodes"><code class="literal">cluster.initial_master_nodes</code></a>。
</dd>
</dl>
</div>
<h4>
<a id="_expert_settings"></a>
专家级设置 (expert settings)
</h4>
<p>发现和集群的组建也受以下<em>专家级(expert-level)</em>设置的影响，尽管我们不建议更改这些设置的默认值。</p>
<div class="warning admon">
<div class="icon"></div>
<div class="admon_content">
<p>如果你调整了这些设置，集群可能无法正确的组建，或者可能变得不稳定或不能容忍某些故障。</p>
</div>
</div>
<div class="variablelist">
<dl class="variablelist">
<dt>
<span class="term">
<code class="literal">discovery.cluster_formation_warning_timeout</code>
</span>
</dt>
<dd>
设置在记录集群未组建成功的警告之前，节点尝试组建集群的时间。
默认为 <code class="literal">10s</code>。
如果在 <code class="literal">discovery.cluster_formation_warning_timeout</code> 时间过去后仍未组建集群，则该节点将记录一条警告消息，该消息以短语<code class="literal">master not discovered</code>开头，描述发现过程的当前状态。
</dd>
<dt>
<span class="term">
<code class="literal">discovery.find_peers_interval</code>
</span>
</dt>
<dd>
设置节点在尝试另一轮发现前等待的时间。默认为 <code class="literal">1s</code>。
</dd>
<dt>
<span class="term">
<code class="literal">discovery.probe.connect_timeout</code>
</span>
</dt>
<dd>
设置尝试连接到每个地址时要等待的时间。默认为 <code class="literal">3s</code>。
</dd>
<dt>
<span class="term">
<code class="literal">discovery.probe.handshake_timeout</code>
</span>
</dt>
<dd>
设置尝试通过握手识别远程节点时要等待的时间。默认为 <code class="literal">1s</code>。
</dd>
<dt>
<span class="term">
<code class="literal">discovery.request_peers_timeout</code>
</span>
</dt>
<dd>
设置节点在再次请求其 对等(peers) 节点后等待多长时间，然后将请求视为失败。默认为 <code class="literal">3s</code>。
</dd>
<dt>
<span class="term">
<code class="literal">discovery.seed_resolver.max_concurrent_resolvers</code>
</span>
</dt>
<dd>
指定在解析种子节点的地址时要执行多少个并发 DNS 查找。默认为 10</code>。
这个设置以前叫 <code class="literal">discovery.zen.ping.unicast.concurrent_connects</code>。这个旧名称已被弃用，但为了保持向后兼容性，仍可以继续使用。在未来版本中将移除对旧名称的支持。
</dd>
<dt>
<span class="term">
<code class="literal">discovery.seed_resolver.timeout</code>
</span>
</dt>
<dd>
指定在解析种子节点的地址时，每次 DNS 查找等待的时间。默认为<code class="literal">5s</code>。

这个设置以前叫 <code class="literal">discovery.zen.ping.unicast.hosts.resolve_timeout</code>。这个旧名称已被弃用，但为了保持向后兼容性，仍可以继续使用。在未来版本中将移除对旧名称的支持。
</dd>
<dt>
<span class="term">
<code class="literal">cluster.auto_shrink_voting_configuration</code>
</span>
</dt>
<dd>
控制 <a class="xref" href="modules-discovery-voting.html" title="Voting configurations">选举设置</a> 是否自动删除离开的节点，只要它仍然包含至少 3 个节点。默认为 <code class="literal">true</code>。

如果设置为false，选举设置永远不会自动收缩，你必须使用 <a class="xref" href="voting-config-exclusions.html" title="Voting configuration exclusions API">选举设置排除</a> API 手动删除脱离的节点。
</dd>
<dt>
<span class="term">
<a id="master-election-settings"></a><code class="literal">cluster.election.back_off_time</code>
</span>
</dt>
<dd>
设置每次选举失败时选举前等待时间上限的增量。请注意，这是<em>线性(linear)</em> 回退(backoff)。默认为 <code class="literal">100ms</code>。更改默认设置可能会导致集群无法选举主节点。
</dd>
<dt>
<span class="term">
<code class="literal">cluster.election.duration</code>
</span>
</dt>
<dd>
设置在节点认为选举失败并安排重试之前，允许每次选举持续的时间。默认为 <code class="literal">500ms</code>。更改默认设置可能会导致集群无法选举主节点。
</dd>
<dt>
<span class="term">
<code class="literal">cluster.election.initial_timeout</code>
</span>
</dt>
<dd>
设置节点最初等待时间的上限，或者在选举的主节点失效后，在尝试第一次选举之前等待时间的上限。默认为 <code class="literal">100ms</code>。更改默认设置可能会导致集群无法选举主节点。
</dd>
<dt>
<span class="term">
<code class="literal">cluster.election.max_timeout</code>
</span>
</dt>
<dd>
设置节点在尝试第一次选举之前等待时间的最大上限，以便持续很长时间的网络分区不会导致过度稀疏的选举。默认为 <code class="literal">10s</code>。更改默认设置可能会导致集群无法选举主节点。
</dd>
<dt>
<span class="term">
<a id="fault-detection-settings"></a><code class="literal">cluster.fault_detection.follower_check.interval</code>
</span>
</dt>
<dd>
设置选举出的主节点在从节点对集群中其他节点检查过程中等待的时间。默认为 <code class="literal">1s</code>。更改默认设置可能会导致集群无法选举主节点。
</dd>
<dt>
<span class="term">
<code class="literal">cluster.fault_detection.follower_check.timeout</code>
</span>
</dt>
<dd>
设置选举出的主节点在认为从节点检查失败之前等待响应的时间。默认为 <code class="literal">10s</code>。更改默认设置可能会导致集群无法选举主节点。
</dd>
<dt>
<span class="term">
<code class="literal">cluster.fault_detection.follower_check.retry_count</code>
</span>
</dt>
<dd>
设置每个节点必须连续发生多少次从节点检查失败，然后选举出的主节点才会认为该节点出现故障并将其从集群中删除。默认为 <code class="literal">3</code>。更改默认设置可能会导致集群无法选举主节点。
</dd>
<dt>
<span class="term">
<code class="literal">cluster.fault_detection.leader_check.interval</code>
</span>
</dt>
<dd>
设置每个节点在选举出的主节点检查之间等待的时间。默认为 <code class="literal">1s</code>。更改默认设置可能会导致集群无法选举主节点。
</dd>
<dt>
<span class="term">
<code class="literal">cluster.fault_detection.leader_check.timeout</code>
</span>
</dt>
<dd>
设置每个节点在被视为失效之前等待来自选举出的主节点的 leader 检查响应的时间。默认为 <code class="literal">10s</code>。更改默认设置可能会导致集群无法选举主节点。
</dd>
<dt>
<span class="term">
<code class="literal">cluster.fault_detection.leader_check.retry_count</code>
</span>
</dt>
<dd>
设置在节点认为选举出的主节点有故障并尝试查找或选择新的主节点之前，必须发生多少次连续的 leader 检查 失败。默认为 <code class="literal">3</code>。更改默认设置可能会导致集群无法选举主节点。
</dd>
<dt>
<span class="term">
<code class="literal">cluster.follower_lag.timeout</code>
</span>
</dt>
<dd>
设置主节点等待从滞后节点接收集群状态更新确认的时间。默认为 <code class="literal">90s</code>。如果一个节点在这段时间内没有成功更新集群状态，则该节点被认为已经失效并从集群中删除。参考 <a class="xref" href="cluster-state-publishing.html" title="Publishing the cluster state">发布集群状态</a>。
</dd>
<dt>
<span class="term">
<code class="literal">cluster.join.timeout</code>
</span>
</dt>
<dd>
设置节点在发送加入集群的请求后，在认为请求失败并重试之前等待的时间，除非<code class="literal">discovery.type</code> 被设置为 <code class="literal">single-node</code>。默认为 <code class="literal">60s</code>。
</dd>
<dt>
<span class="term">
<code class="literal">cluster.max_voting_config_exclusions</code>
</span>
</dt>
<dd>
设置无论在任何时候的投票配置排除的数量限制。<span class="remark">(原文: Sets a limit on the number of voting configuration exclusions at any one time.) </span>  默认为 <code class="literal">10</code>。参考 <a class="xref" href="modules-discovery-adding-removing-nodes.html" title="Adding and removing nodes">添加和移除节点</a>。
</dd>
<dt>
<span class="term">
<code class="literal">cluster.publish.info_timeout</code>
</span>
</dt>
<dd>
设置主节点等待 每个集群状态更新 完全发布到所有节点的时间，然后记录一条消息，指示某些节点响应缓慢。默认为 <code class="literal">10s</code>。
</dd>
<dt>
<span class="term">
<code class="literal">cluster.publish.timeout</code>
</span>
</dt>
<dd>
设置主节点等待 每个集群状态更新 完全发布到所有节点的时间，除非<code class="literal">discovery.type</code> 被设置为 <code class="literal">single-node</code>。默认为 <code class="literal">30s</code>。参考 <a class="xref" href="cluster-state-publishing.html" title="Publishing the cluster state">发布集群状态</a>。
</dd>
<dt>
<span class="term">
<a id="no-master-block"></a><code class="literal">cluster.no_master_block</code>
</span>
</dt>
<dd>
<p>
指定当集群中没有活动的主节点时拒绝哪些操作。该设置有两个有效值：
</p>
<div class="variablelist">
<dl class="variablelist">
<dt>
<span class="term">
<code class="literal">all</code>
</span>
</dt>
<dd>
拒绝集群上的所有操作（读和写操作）。这也适用于 集群状态读取或写入操作的 API ，如获取索引设置、设置映射(mapping) 和 集群状态 API。
</dd>
<dt>
<span class="term">
<code class="literal">write</code>
</span>
</dt>
<dd>
(默认) 拒绝写操作。根据最后一次已知的集群配置，读取操作是成功的。这种情况可能会导致对陈旧数据的部分读取，因为该节点可能与集群的其余部分隔离。
</dd>
</dl>
</div>
<div class="note admon">
<div class="icon"></div>
<div class="admon_content">
<div class="ulist itemizedlist">
<ul class="itemizedlist">
<li class="listitem">
<code class="literal">cluster.no_master_block</code> 设置不适用于 基于节点的 API（比如 集群统计，节点信息，以及节点统计 API）。
对这些 API 的请求不会被阻止，可以在任何可用的节点上运行。
</li>
<li class="listitem">
要使集群完全运行，它必须有一个活动的主节点。
</li>
</ul>
</div>
</div>
</div>
<div class="warning admon">
<div class="icon"></div>
<div class="admon_content">
<p>
这个设置取代了之前版本中的 <code class="literal">discovery.zen.no_master_block</code> 设置。且 <code class="literal">discovery.zen.no_master_block</code> 已被忽略。
</p>
</div>
</div>
</dd>
</dl>
</div>
</div>
<div class="navfooter">
<span class="prev">
<a href="ccr-settings.html">« 跨集群复制设置</a>
</span>
<span class="next">
<a href="modules-fielddata.html">字段数据缓存设置 »</a>
</span>
</div>
</div>

                  <!-- end body -->
                        </div>
                        <div class="col-xs-12 col-sm-4 col-md-4" id="right_col">
                        
                        </div>
                    </div>
                </div>
            </section>
        </div>
    </section>
</div>
<script src="../static/cn.js"></script>
</body>
</html>